package com.example.wan1.data;

import java.util.List;

import io.reactivex.Observer;
import io.reactivex.annotations.Nullable;
import io.reactivex.disposables.Disposable;

/***
 * 创建时间：2020/5/2 17:07
 * 创建人：10850
 * 功能描述：观察者的一个简单的封装
 */
public abstract class RootObserver<T> implements Observer<List<T>> {

    public abstract void onSuccess(List<T> result);

    public abstract void onFailure(Throwable e, String errorMsg);


    @Override
    public void onSubscribe(Disposable d) {

    }

    @Override
    public void onNext(@Nullable List<T> t) {
        //返回码=0是请求成功，返回其他的是请求失败
        //这个是根据具体的url接口返回决定的，可以不在这里写
        if (t.size() == 0) {
            onFailure(new Exception("到底了！"), "到底了！");
        } else {
            onSuccess(t);
        }
    }

    @Override
    public void onComplete() {

    }

    @Override
    public void onError(Throwable e) {
        onFailure(e, e.getMessage());
    }
}

